/*
 * @Author: mark
 * @Date: 2023-05-11 08:58:14
 * @LastEditors: mark
 * @LastEditTime: 2023-07-12 13:31:42
 * @Description: file content
 */
import { post, get, deletes } from './axiosUser';

export class LoginService {
  //登录页面接口
  static async login(data: any) {
    //登录
    return post('/auth/login', data);
  }
  static async getCode(data: any) {
    // 验证码
    return get('/code', data);
  }
  static async authPhoneCode(data: any) {
    // 证书鉴权-手机验证码
    return get('/resources/login/getPhoneCode', data);
  }
  static async accountPassword(data: any) {
    return post('/resources/login/accountPassword', data);
  }
  static async userInfo(data: any) {
    // 登录用户信息
    return get('/system/user/getInfo', data);
  }

  static async authlogout() {
    return get('/oauth2/logout/authlogout');
  }

  static async OOSLogin(data: any) {
    return post('/auth/OOSLogin', data);
  }
  static async Menu(data: any) {
    //菜单
    return get('/system/menu/getRouters', data);
  }
  /***********************忘记密码***************************/
  static async getEmailCode(data: any) {
    //获取邮箱验证码
    return get('/system/user/getEmailCode', data);
  }
  static async verifyEmailCode(data: any) {
    let str = '?';
    Object.keys(data).forEach((key) => {
      str += `${key}=${data[key]}&`;
    });
    //校验邮箱验证码
    return post(`/system/user/verifyEmailCode${str}`);
  }
  static async getPhoneCode(data: any) {
    //获取手机验证码
    return get('/system/user/getPhoneCode', data);
  }
  static async verifyPhoneCode(data: any) {
    let str = '?';
    Object.keys(data).forEach((key) => {
      str += `${key}=${data[key]}&`;
    });
    //验证手机验证码
    return post(`/system/user/verifyPhoneCode${str}`);
  }
  static async verifyPassword(data: any) {
    //编辑密码
    return post(`/system/user/verifyPassword`, data);
  }
  //强制修改密码-未登录
  static async changePasswordByUserName(data: any) {
    return post('/resources/resources/changePasswordByUserName', data);
  }
}
export class ApplicationService {
  //新增应用规则接口
  static async addAppIns(data: any) {
    return post('/system/newAppIns/addAppIns', data);
  }
  //应用规则回显
  static async listAppIns(data: any) {
    return post('/system/newAppIns/listAppIns', data);
  }
  //匹配应用规则接口
  static async appSaveMatchingRules(data: any) {
    return post('/system/app/appSaveMatchingRules', data);
  }
  //应用账号关联用户
  static async associatedOrphanAccount(data: any) {
    return post('/system/userApp/associatedOrphanAccount', data);
  }
  //逻辑删除应用账号
  static async userAppDel(data: any) {
    return post('/system/userApp/del', data);
  }
  //应用账号批量重发和失效
  static async sendAppUserDownLinstenerData(data: any) {
    return post('/system/userApp/sendAppUserDownLinstenerData', data);
  }
  //应用新增应用账号
  static async insertAppUser(data: any) {
    return post('/system/userApp/insertAppUser', data);
  }
  //基本信息
  static async getInfoByAppId(data: any) {
    return post('/system/app/getInfoByAppId', data);
  }
  // 根据应用配置id查询应用配置详情
  static async ucAppConfig(data: any) {
    return get(`/system/ucAppConfig/${data}`);
  }
  //应用账号导入
  static async importExcelSubject(data: any) {
    return post('/system/app/importExcelSubject', data);
  }
  // 编辑应用侧属性
  static async updateDefinition(data: any) {
    return post('/system/attribute/updateDefinition', data);
  }
  // 新增应用侧属性
  static async insertDefinition(data: any) {
    return post('/system/attribute/insertDefinition', data);
  }
  // 删除应用侧属性
  static async deleteDefinition(data: any) {
    return post('/system/attribute/deleteDefinition', data);
  }
  //新增应用属性映射
  static async personAdd(data: any) {
    return post('/system/person/add', data);
  }
  //编辑应用属性映射
  static async personEdit(data: any) {
    return post('/system/person/edit', data);
  }
  //删除应用属性映射
  static async persontDel(data: any) {
    return post('/system/person/del', data);
  }
  // 新增应用角色
  static async attributePostgAdd(data: any) {
    return post('/system/attributePost/add', data);
  }
  // 编辑应用角色
  static async attributePostEdit(data: any) {
    return post('/system/attributePost/edit', data);
  }
  // 删除应用角色
  static async attributePostDel(data: any) {
    return post('/system/attributePost/del', data);
  }
  //新增应用角色映射
  static async sysattributepostAdd(data: any) {
    return post('/system/sysattributepost/add', data);
  }
  //编辑应用角色映射
  static async sysattributepostEdit(data: any) {
    return post('/system/sysattributepost/edit', data);
  }
  //删除应用角色映射
  static async sysattributepostDel(data: any) {
    return post('/system/sysattributepost/del', data);
  }
  // 新增(编辑)应用配置
  static async ucAppConfigAddOrEdit(data: any) {
    return post('/system/ucAppConfig/addOrEdit', data);
  }
  //查看访问策略
  static async selectStrategy(data: any) {
    return get('/system/strategy/list', data);
  }
  //新增访问策略
  static async insertStrategy(data: any) {
    return post('/system/strategy/insertStrategy', data);
  }
  //编辑访问策略
  static async updateStrategy(data: any) {
    return post('/system/strategy/updateStrategy', data);
  }
  //编辑策略状态
  static async editState(data: any) {
    return post('/system/strategy/editState', data);
  }
  //删除访问策略
  static async deleteStrategy(data: any) {
    return post('/system/strategy/deleteStrategy', data);
  }
  // 删除应用
  static async deleteAppIds(data: any) {
    return post('/system/app/deleteAppIds', data);
  }
  // 编辑应用
  static async editAppIds(data: any) {
    return post('/system/app/edit', data);
  }
  //多因素认证列表
  static async authstrategyList(data: any) {
    return get('/system/authstrategy/list', data);
  }
  // 重置秘钥
  static async resetKey(data: any) {
    return post('/system/details/resetKey', data);
  }
  static async download() {
    return get('/system/app/download');
  }
  // 应用新增
  static async appAdd(data: any) {
    return post('/system/app/add', data);
  }
  //同步事件列表
  static async getUcinterfaceDownStaffLog(data: any) {
    return get(
      '/system/UcinterfaceDownStaffLog/getUcinterfaceDownStaffLog',
      data
    );
  }
  //用户自定义属性
  static async AttributeList(data: any) {
    // 列表
    return get('/system/prop/list', data);
  }
  // 查询应用侧属性
  static async attributeDefinition(data: any) {
    return post('/system/attribute/attributeDefinition', data);
  }

  //应用属性映射列表
  static async personList(data: any) {
    return get('/system/person/list', data);
  }

  // 应用组织列表
  static async attributeOrgList(data: any) {
    return get('/system/attributeOrg/list', data);
  }
  // 新增应用组织
  static async attributeOrgAdd(data: any) {
    return post('/system/attributeOrg/add', data);
  }
  // 编辑应用组织
  static async attributeOrgEdit(data: any) {
    return post('/system/attributeOrg/edit', data);
  }
  // 删除应用组织
  static async attributeOrgDel(data: any) {
    return post('/system/attributeOrg/del', data);
  }
  //应用组织映射列表
  static async relationList(data: any) {
    return get('/system/relation/list', data);
  }
  //新增应用组织映射
  static async relationAdd(data: any) {
    return post('/system/relation/add', data);
  }
  //编辑应用组织映射
  static async relationEdit(data: any) {
    return post('/system/relation/edit', data);
  }
  //删除应用组织映射
  static async relationDel(data: any) {
    return post('/system/relation/del', data);
  }

  //查询应用账号列表
  static async queryAppData(data: any) {
    return post('/system/app/queryAppData', data);
  }

  //查询孤儿账号
  static async selectIsbind(data: any) {
    return post('/system/userApp/selectIsbind', data);
  }
  // 应用角色列表
  static async attributePostList(data: any) {
    return get('/system/attributePost/list', data);
  }
  //应用角色映射列表
  static async sysattributepostList(data: any) {
    return get('/system/sysattributepost/list', data);
  }
  //认证集成
  static async appOAuth(data: any) {
    return post('/system/app/appOAuth', data);
  }
  // 批量同步事件重发
  static async resendAppLocationAccount(data: any) {
    return post('/system/userApp/resendAppLocationAccount', data);
  }
}
export class SystemService {
  //下发日志
  static async getUserDownStaffLog(data: any) {
    return get('/system/UcinterfaceDownStaffLog/getUserDownStaffLog', data);
  }
  //岗位下发接口
  static async postBatchDown(data: any) {
    return post('/system/post/batchDown', data);
  }
  //组织下发接口
  static async batchDown(data: any) {
    return post('/system/dept/batchDown', data);
  }
  //应用列表(select)
  static async ucAppConfigList() {
    return get('/system/ucAppConfig/list');
  }
  // 用户和组织
  static async userList(data: any) {
    //用户列表
    return get('/system/user/list', data);
  }
  static async positionList(data: any) {
    //岗位列表
    return get('/system/post/list', data);
  }
  static async positionEdit(data: any) {
    return post('/system/post/edit', data);
  }
  static async userAdd(data: any) {
    //用户新增
    return post('/system/user/add', data);
  }
  static async userEdit(data: any) {
    //用户编辑
    return post('/system/user/edit', data);
  }
  //新增临时人员
  static async temporaryAdd(data: any) {
    return post('/system/temporary/add', data);
  }
  //用户新增组织与岗位
  static async userPost(data: any) {
    return post('/system/user/editDeptPost', data);
  }
  //用户删除组织与岗位
  static async userPostDel(data: any) {
    return post('/system/user/delDeptPost', data);
  }
  // 用户角色信息
  static async authRole(data: any) {
    return get('/system/user/authRole/' + data.userId);
  }
  // 用户新增角色
  static async addRoleUser(data: any) {
    return post('/system/user/authRoles', data);
  }
  // 密码设置
  static async resetPwd(data: any) {
    return post('/system/user/resetPwd', data);
  }
  // 密码编辑
  static async editPwd(data: any) {
    return post('/system/user/editPwd', data);
  }
  static async changeStatus(data: any) {
    //编辑用户状态
    return post('/system/user/changeStatus', data);
  }
  static async UserDel(data: any) {
    //删除用户
    return post('/system/user/del', data);
  }
  // 用户组列表
  static async GroupList(data: any) {
    return get('/system/usergroup/list', data);
  }
  // 用户组新增
  static async GroupAdd(data: any) {
    return post('/system/usergroup/add', data);
  }
  // 用户组编辑
  static async GroupEdit(data: any) {
    return post('/system/usergroup/edit', data);
  }
  // 用户组删除
  static async GroupDel(data: any) {
    return post('/system/usergroup/del', data);
  }
  //用户组新增成员
  static async groupAddUser(data: any) {
    return post('/system/usergroup/addUser', data);
  }
  //用户组删除成员
  static async groupDelUser(data: any) {
    return post('/system/usergroup/delUser', data);
  }
  //用户组已有成员
  static async selectUserList(data: any) {
    return post('/system/usergroup/selectUserList', data);
  }
  static async TreeSelectHollow(data: any) {
    //组织树去除选中人
    return post('/system/usergroup/selectNotUserList', data);
  }
  static async positionAdd(data: any) {
    return post('/system/post/save', data);
  }
  //删除岗位
  static async positionRemove(data: any) {
    return post('/system/post/remove', data);
  }
  // 组织列表
  static async DeptList(data: any) {
    return get('/system/dept/list', data);
  }
  // 组织删除
  static async DeptDel(data: any) {
    return post('/system/dept/del', data);
  }
  // 组织新增
  static async DeptAdd(data: any) {
    return post('/system/dept/add', data);
  }
  // 组织编辑
  static async DeptEdit(data: any) {
    return post('/system/dept/edit', data);
  }
  // 姓名转拼音
  static async createPinyin(data: any) {
    return post('/system/user/createPinyin', data);
  }
  // 姓名拼音转账号 /user/createAccount
  static async createAccount(data: any) {
    return post('/system/user/createAccount', data);
  }
  static async TreeSelect(data: any) {
    //组织树
    return post('/system/dept/treeselect', data);
  }
  // 应用列表
  static async appList(data: any) {
    return get('/system/app/list', data);
  }
  // 应用新增
  static async appAdd(data: any) {
    return post('/system/app/add', data);
  }
  static async getPost(data: any) {
    //按组织查询岗位
    return get('/system/post/list', data);
  }
}
export class MasterService {
  static async List(data: any) {
    //管理员列表
    return get('/system/user/list', data);
  }
  // 根据角色查询菜单权限
  static async getMenuTreeAndApp(data: any) {
    return get(`/system/role/getMenuTreeAndApp/${data}`);
  }
  // 密码设置
  static async resetPwd(data: any) {
    return post('/system/user/resetPwd', data);
  }
  // 用户新增角色
  static async addRoleUser(data: any) {
    return post('/system/user/authRoles', data);
  }
}
export class MenuService {
  static async getMenuTree(data: any) {
    // 菜单树 /system/menu/treeselect
    return get('/system/menu/treeselect', data);
  }
  //菜单列表(新)
  static async menuTree(data: any) {
    return post('/system/menu/getMenuTreeAll', data);
  }
  static async menuAdd(data: any) {
    //菜单新增
    return post('/system/menu/save', data);
  }
  static async menuEdit(data: any) {
    //菜单编辑
    return post('/system/menu/edit', data);
  }
  static async menuDel(data: any) {
    //菜单删除 /menu​/{menuId}
    return post('/system/menu/del/' + data.menuId, data);
  }
}
export class RoleService {
  //角色管理
  static async roleList(data: any) {
    //角色列表
    return get('/system/role/list', data);
  }
  static async roleDel(data: any) {
    //角色删除
    return post('/system/role/del/' + data.roleId, data);
  }
  static async roleAdd(data: any) {
    //角色新增
    return post('/system/role/save', data);
  }
  static async roldEdit(data: any) {
    //角色编辑
    return post('/system/role/edit', data);
  }
  //角色下用户列表
  static async allocatedList(data: any) {
    return get('/system/role/authUser/allocatedList', data);
  }
  // 角色新增用户列表
  static async unallocatedList(data: any) {
    return get('/system/role/authUser/unallocatedList', data);
  }
  static async getDept(data: any) {
    //应角色部门树列表
    return get('/system/role/deptIdAndScope/' + data.roleId);
  }
  // 角色新增用户
  static async selectAll(data: any) {
    return post('/system/role/authUser/selectAll', data);
  }
  // 取消用户授权
  static async roleCancel(data: any) {
    return post('/system/role/authUser/cancel', data);
  }
  // 用户授权编辑
  static async dataScope(data: any) {
    return post('/system/role/dataScope', data);
  }
}
export class QueryLocked {
  /**
   * @description 解锁人员列表
   */
  static async QueryLockedPersonnel(data: any) {
    return post('/system/LockAccount/QueryLockedPersonnel', data);
  }
  /**
   * @description 解锁人员
   */
  static async PersonnelUnlocking(data: any) {
    return post('/system/LockAccount/PersonnelUnlocking', data);
  }
}
export class ApplyService {
  //临时人员管理
  static async temporaryList(data: any) {
    //临时人员列表
    return get('/system/temporary/list', data);
  }
  static async appRoval(data: any) {
    //临时人员审批
    return post('/system/temporary/approval', data);
  }
}

export class UserAttribute {
  //用户自定义属性
  static async AttributeList(data: any) {
    // 列表
    return get('/system/prop/list', data);
  }
  static async AttributeAdd(data: any) {
    // 新增
    return post('/system/prop/add', data);
  }
  static async AttributeDel(data: any) {
    // 删除
    return post('/system/prop/del', data);
  }
  static async AttributeEdit(data: any) {
    // 编辑
    return post('/system/prop/edit', data);
  }
}
export class PasswordService {
  static async List(data: any) {
    //密码策略列表
    return post(
      '/system/passwords/list?pageNum=' +
        data.pageNum +
        '&pageSize=' +
        data.pageSize +
        '&passwordName=' +
        data.passwordName,
      data
    );
  }
  // 默认密码策略列表 /passwords/listDefault
  static async listDefault(data: any) {
    return post('/system/passwords/listDefault', data);
  }
  //查询等保 /passwords/listEqualInsurance
  static async listEqualInsurance(data: any) {
    return post('/system/passwords/listEqualInsurance', data);
  }
  //删除密码策略
  static async del(data: any) {
    return post('/system/passwords/del', data);
  }
  //新增密码策略 /system/passwords/add
  static async add(data: any) {
    return post('/system/passwords/add', data);
  }
  //编辑密码策略 /system/passwords/add
  static async edit(data: any) {
    return post('/system/passwords/edit', data);
  }
}

//用户操作
export class SysLog {
  //操作日志
  static async operlogList(data: any) {
    return get('/syslog/operlog/list', data);
  }
  //操作日志详情
  static async selectOperLogById(data: any) {
    return post('/syslog/operlog/selectOperLogById', data);
  }
  //导出
  static async operationExport(data: any) {
    return get('/syslog/operlog/export', data);
  }
  //日志归档
  static async archivingLog(data?: any) {
    // return get('/syslog/operlog/archivingLog', data);
    return get('/syslog/operlog/logList', data);
  }
  //岗位下发日志
  static async postLogListLog(data: any) {
    return get('/system/InterfaceDownLog/postLogList', data);
  }
  //岗位下人员列表
  static async getUser(data: any) {
    return get('/system/post/getUser', data);
  }
  //组织下发日志
  static async orgLogListLog(data: any) {
    return get('/system/InterfaceDownLog/orgLogList', data);
  }
  //登陆日志
  static async authloginList(data: any) {
    return get('/syslog/syslog/list', data);
  }
  //登录日志详情
  static async selectSysLogById(data: any) {
    return post('/syslog/syslog/selectSysLogById', data);
  }
}

// 用户详情
export class UserDetailService {
  //用户信息
  static async Info(data: any) {
    return post('/system/user/getuserone', data);
  }
  //用户所属用户组
  static async Group(data: any) {
    return post('/system/user/userbyuserg', data);
  }
  //授权应用
  static async App(data: any) {
    return post('/system/user/userapp', data);
  }
  //审计日志
  static async Log(data: any) {
    return post(
      '/system/user/userauditLog?pageNum=' +
        data.pageNum +
        '&pageSize=' +
        data.pageSize,
      data
    );
  }
}

interface Inquire {
  pageNum: Number;
  pageSize: Number;
}
export class UserOperation {
  /**
   * 查询目前在线用户
   */
  static async onlineUserInquire(data: Inquire) {
    // return get('/oauth2/test/add');
    return post('/oauth2/iamLoginS/onlineUser', data);
  }

  /**
   * 使用户下线
   */
  static async onlineUserOffline(data: any[]) {
    return post('/oauth2/iamLoginS/toout', data);
  }
}

export class ticket {
  /**
   * 添加ticket管理员
   * @param { object } data
   * @param { string } data.useId
   * @param { string } data.userName
   * @param { string } data.nickName
   * @param { string } data.deptName
   * @param { string } data.phone
   * @param { string } data.type
   */
  static ticketAdminAdd(data: any) {
    return post('/system/push/add', data);
  }
  /**
   * 查询 ticket Admin
   * @param { object } data
   * @param { string } data.page
   * @param { string } data.size
   * @param { string } data.phone
   * @param { string } data.userName
   * @param { string } data.type
   */
  static ticketAdminQuery(data: Inquire) {
    return post('/system/push/query', data);
  }

  /**
   * 删除ticket管理员
   */
  static tocktAdminDelete(data: any[]) {
    return post('/system/push/delete', data);
  }

  /**
   * 修改 ticket admin
   * @param { object } data
   * @param { string } data.useId
   * @param { string } data.userName
   * @param { string } data.nickName
   * @param { string } data.deptName
   * @param { string } data.phone
   * @param { string } data.type
   * @returns
   */
  static ticketAdminEdit(data: any) {
    return post('/system/push/update', data);
  }

  /**
   * 查询 Ticket 日志
   */
  static AttributeList(data: { pageNum: number; pageSize: number; }) {
    return post('/resources/tokenLog/query', data);
  }
}
/**
 * 应用
 */
export class Application {
  /**
   *查询网域ip列表
   */
  static domainListInquire() {
    return post('/system/domain/list', {});
  }
  /**
   * 查询网域应用
   * @constructor
   * @param {Object} cilumns
   * @param {string} cilumns.domainIp
   * @param {number} cilumns.pageNum
   * @param {number} cilumns.pageSize
   * @returns
   */
  static applicationInquire(data: any) {
    return post('/system/domain/getDomainAppLimitList', data);
  }
  /**
   * 应用状态修改接口
   * @param {Object} cilumns
   * @param {string} cilumns.appIp
   * @param {string} cilumns.appStatus  1开启 2禁用
   */
  static applicationStateEdit(data: any) {
    return post('/system/domain/updateDomainStatus', data);
  }
  /**
   * 网域列表查询
   * @param {Object} cilumns
   * @param {string} cilumns.domainName
   * @param {string} cilumns.domainIp
   */
  static applicationListInquire(data: any) {
    //待修改
    return post('/system/domain/getParentDomainList', data);
  }
  /**
   * 添加网域接口
   * @param {Object} cilumns
   * @param {string} cilumns.domainName
   * @param {string} cilumns.domainIp
   */
  static applicationAdd(data: any) {
    return post('/system/domain/add', data);
  }
  /**
   * 禁用网域接口
   * @param {Object} cilumns
   * @param {string} cilumns.domainId
   * @param {string} cilumns.domainStatus 1开启  2禁用
   */
  static applicationDisabled(data: any) {
    return post('/system/domain/update', data);
  }
  /**
   * 删除网域接口
   * @param {Object} cilumns
   * @param {string} cilumns.domainId
   */
  static applicationDelete(data: any) {
    return deletes('/system/domain/del', data);
  }
}

export class Authority {
  /**
   * 用户获取自己提交得申请
   * @param {object} data
   * @param {string} data.type
   * @param {string} data.sysApp
   */
  static userSubmitsInquire(data: any) {
    return post('/system/roleApproval/queryTaskByUser', data);
  }
  /**
   * 用户提交应用权限申请
   * @param {Object} data
   * @param {string} data.remake  申请原因
   * @param {string} data.sysApp  申请应用
   * @param {number} data.sysAppId  111
   * @param {string} data.role  申请角色
   * @param {number} data. roleId  1111
   * @param {string} data.approvedPhone 手机号
   */
  static userCreatTask(data: any) {
    return post('/system/roleApproval/creatTask', data);
  }
  /**
   * 获取应用列表
   * @param {Object} data
   * @param {string} data.useId
   * @param {string} data.pageSize
   */
  static getApplist(data: any) {
    return get('/system/app/appList', data);
  }
  /**
   * 获取用户角色
   * @param {Object} data
   * @param {string} data.appId  申请应用
   */
  static getAppRoles(data: any) {
    return post('/system/roleApproval/getRoles', data);
  }
  /**
   * 管理员查看用户提交权限申请记录
   */
  static authorityapplicationRecordInquire(data: {
      //导出
      type: string; sysApp: string; pageNum: number; pageSize: number;
    }) {
    return post('/system/roleApproval/queryTaskByType', data);
  }
  /**
   * 审批同意
   * @param [object] data
   * @param {string} data.id
   * @param {string} data.approvedType
   * @param {string} data.roleId
   * @param {string} data.userId
   */
  static approval(data: any) {
    return post('system/roleApproval/approval', data);
  }
  /**
   * 权限审计Get list
   */
  static authorityList(data: [any]) {
    return get('/syslog/operlog/authorityList', data);
  }
  static auditList(data: any) {
    return post('/system/audit/list', data);
  }
  static auditAdd(data: any) {
    return post('/system/audit/add', data);
  }
  static auditDel(data: any) {
    return deletes('/system/audit/dels', data);
  }
  static auditUpdate(data: any) {
    return post('/system/audit/update', data);
  }
}
